<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        // //自定义对象
        // var obj = new Object();
        // // console.log(typeof obj)
        // obj.name = "孙悟空";
        // obj.age = 18;
        // obj.gender = "男";

        // obj.sayName = function() {
        //     console.log(obj.name)
        // }

        // obj.sayName();
        // // console.log(obj)
        // // console.log(obj.name) //孙悟空

        //方式二：看到{}想对象
        var obj = {
            name: "猪八戒",
            age: 18,
            gender: "男",
            // sayName: function() {
            //     console.log("adadda")
            // }
        };

        // console.log(a.name)
        // console.log(a)
        //     // console.log(typeof a)

        // function a(obj) {


        // }



        var obj2 = {
                name: "猪八戒",
                age: 18,
                gender: "男"
            }
            // console.log(obj2)
            // console.log(obj2.name)

        //配合函数使用，当函数具有多个参数的时候就可以将这些参数封装到一个对象中，将对象传入到函数的参数中
        //首先有一个多参的函数
        function fun2(o) {
            console.log(o)
            console.log("姓名：" + o.name + "年龄：" + o.age + "性别：" + o.gender)
        }
        // fun2("唐僧", 20, "男")//这样就比较麻烦
        //可以在调用的时候直接传入一个对象，当然前提是该对象有你需要的属性
        // fun2(obj2)


        //函数的实参中还可以传入一个函数
        // 比如上面的内容还可以这样写
        // 在定义一个函数
        function fun3(a) {

            a(obj2)
        }

        fun3(fun2);
    </script>
</body>

</html>